Tính toán Bình_phương_tối_thiểu_tuyến_tính

Nếu ma trận ATA đầy rank và ổn định (well-conditioned), phương trình normal có thể được giải trực tiếp bằng phân tích Cholesky ATA = RTR, cho ta:

R T R x = A T b . {\displaystyle R^{T}R\mathbf {x} =A^{T}\mathbf {b} .}

với R là một ma trận tam giác trên (ma trận mà các số phía dưới đường chéo đều bằng 0,upper triangular matrix).

Một phương pháp chậm hơn nhưng ổn định hơn, vẫn làm việc nếu A không đầy rank, có thể đạt được bằng cách tính phân tích QR A = Q R. Sau đó ta có thể giải

R x = Q T b . {\displaystyle R\mathbf {x} =Q^{T}\mathbf {b} .}

với Q là một ma trận trực giao và R là một ma trận tam giác trên.

Một cách thứ ba là sử dụng singular value decomposition (SVD). Nếu A = U Σ V ∗ {\displaystyle A=U\Sigma V^{*}} là singular value decomposition của A, thì ma trận giả nghịch đảo của A làV Σ+ U*, so

x = V Σ + U ∗ b {\displaystyle \mathbf {x} =V\Sigma ^{+}U^{*}\mathbf {b} \,}

với Σ+ là ma trận chuyển của Σ với mọi phần tử khác 0 được thay bằng phần tử nghịch đảo. Phương pháp này cần dùng nhiều sức máy nhất, nhưng rất hữu ích nếu như ma trận A rất không ổn định (i.e. nếu như số điều kiện của nó nhân với sai số của máy khá lớn). Trong trường hợp đó, thêm vào những giá trị nhỏ nhất của các giá trị singular trong ma trận nghịch đảo chỉ cộng thêm nhiễu vào đáp số. Điều này có thể được chữa bằng tiếp cận sử dụng SVD, cho ra một lời giải chính xác hơn và ổn định hơn, bằng cách đặt bằng zero tất cả các giá trị singular dưới một ngưỡng nào đó và mặc kệ chúng, trước khi tính toán ma trận giả nghịch đảo.